package exception;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * JDK7之后,推出了自动关闭的特性 可以用更精简的语法在异常处理机制中
 * 玩成需要在finally中的close操作
 *
 * @author Luka
 * @date 2021/05/31 16:58
 **/
public class AutoCloseableDemo {
    public static void main(String[] args) {
        /*
            try()中定义需要在finally中会调用close的变量并初始化
            注意:只有实现了AutoCloseable接口的类才可以在这里声明变量并初始化
            javaIO中所有的流都实现了这个接口
            该特性是编译器认可的,编译器在编译代码后会将代码改为FinallyDemo2的样子
         */
        try (
                FileOutputStream fos = new FileOutputStream("fos.dat");
        ){
            fos.write(1);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}